const User = require('../../model/User')
const jwt = require('jsonwebtoken')
    // 导入bcrypt
var bcrypt = require('bcrypt')
module.exports = async(req, res) => {
    // 接收客户端传递过来的参数
    const { email, password } = req.body
    if (!email) {
        res.sendResult(null, 400, '请传递用户邮箱！')
    }
    if (!password) {
        res.sendResult(null, 400, '请传递用户密码！')
    }
    // 根据邮箱查询用户 
    const model = await User.findOne({ where: { email } })
        // 判断用户是否存在
    if (!model) {
        res.sendResult(null, 400, '邮箱不存在!')
        return
    }
    // 将客户端传递过来的密码进行解密
    let isEqual = await bcrypt.compare(password, model.password)
        // 判断
    if (!isEqual) {
        res.sendResult(null, 400, '密码不正确!')
        return
    }
    // 判断是否的状态是否被禁用
    if (!model.state) {
        res.sendResult(null, 400, '该账号已经被管理员禁用!')
        return
    }
    const token = jwt.sign({ username: model.username, role: model.role }, 'xiaoke')
        // 全部验证成功
    res.sendResult({
        id: model.id,
        username: model.username,
        email: model.email,
        role: model.role,
        key: model.key,
        capacity: model.capacity,
        maxcapacity: model.maxcapacity,
        token
    }, 200, '登陆成功！')
}